package io;

import java.io.*;

/**
 * Java将流按照读写单位划分为：字节流与字符流
 * InputStream和OutputStream是字节流的超类
 * Reader和Writer是字符流的超类
 * 这些超类之间没有继承关系，是平级的
 *
 * 字符流中定义了读写字符的相关read和write方法，使得我们读写的最小单位为字符（char）
 * 注意:字符流仅适合读写文本数据!
 *  * 字符流底层本质还是读写字节，只是字节与字符的转换字符流会完成。
 *  *
 *  * 转换流:
 *  * InputStreamReader和OutputStreamWriter
 *  * 常用的一对字符流实现类，它们是一对高级流，实际开发中我们几乎不会直接操作他们，但是、
 *  * 他们在流连接中是非常重要的一环。
 *  * 功能:
 *  * 1:衔接其它字符流与下面的字节流
 *  * 2:字符与字节的转换由转换流完成
 */
public class OSWDemo {
    public static void main(String[] args) throws IOException {
        //向文件中写入文本数据
        FileOutputStream fos=new FileOutputStream("osw.txt");
        OutputStreamWriter osw=new OutputStreamWriter(fos,"UTF-8");

        osw.write("你在南方的艳阳里，大雪纷飞。");
        osw.write("我在北方的寒夜里，四季如春。");

        System.out.println("写出完毕!");
        osw.close();
    }
}
